﻿using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Data.OracleClient;
using Biblioteca.DataBase;
using System.Configuration;
using Pms.Utils;
using System.Data;

namespace SERIX.Classes
{
    public class CStatus
    {
        private string _tabela;
        private string _coluna;        
        private string _status;

        /// <summary>
        /// Construtor da Classe CStatus
        /// </summary>        
        public CStatus()
        {
           
        }         
        
        /// <summary>
        /// Construtor da Classe CStatus
        /// </summary>   
        public CStatus(string IdtTabela, string linha, string login)
        {
            BuscaTabela(IdtTabela);
            string sql = @"SELECT STATUS FROM " + _tabela + " WHERE " + _coluna + " = :IDT";
            Query qy = null;

            try
            {
                qy = new Query(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, BiblioPMS.Demo), sql);
                qy.AdicionarParametro(":IDT", DbType.String, linha);

                qy.Executar();
                this._status = qy.ObterCampo("STATUS");
                if (this.status == "V")
                {
                    this._status = "A";
                }
            }
            catch
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                {
                    qy.FecharConexao();
                }                
            }
        }

        /// <summary>
        /// Propriedade Status
        /// </summary>
        public string status
        {
            get
            {
                return this._status;
            }
            
        }

       
        public void AlterarStatus(string IdtTabela, string status, string linha)
        {
            BuscaTabela(IdtTabela);
            OracleConnection conexao = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            string SQL = "update " + _tabela + @" set 
                            STATUS = :STATUS
						   where " + _coluna + " = :IDT ";
            OracleCommand cmd = new OracleCommand(SQL, conexao);
            cmd.Parameters.Add("STATUS", OracleType.Char);
            cmd.Parameters.Add("IDT", OracleType.Number);
            cmd.Parameters["STATUS"].Value = status;
            cmd.Parameters["IDT"].Value = Convert.ToInt32(linha);

            try
            {
                conexao.Open();
                cmd.ExecuteNonQuery();
            }
            catch(Exception e)
            { e = e; }
            finally { conexao.Close(); }
        }

        /// <summary>
        /// Metódo que recebe o numero para identificar a tabela que será alterada
        /// </summary>
        /// <param name="IdtTabela">Identificador da tabela</param>
        public void BuscaTabela(string IdtTabela)
        {
            #region Case que retorna o nome da tabela e a coluna a ser atualizada
            switch (IdtTabela)
            {
                case "1": { _tabela = "Serix.SRX_PROPRIEDADES"; _coluna = "IDT_PROP"; break; }
                case "2": { _tabela = "Serix.SRX_BENEFICIARIOS"; _coluna = "Idt_Benef"; break; }
                case "3": { _tabela = ""; _coluna = ""; break; }
            }
            #endregion
        }
       

    }
}
